#include <iostream>
using std::cout;
using std::endl;

int num = 100;

int func1(){
    return num; //执行return语句时会发生复制
}

int & func2(){
    return num;//执行return语句时不会发生复制
    //而是定义了一个绑定到num的引用（没有名字的引用）
}

void test0(){
    cout << func1() << endl;
    /* func1() = 1000; */
    //func1的返回值是num的副本
    //是一个匿名变量,生命周期只在当前行
    //不能进行取址
    /* &func1(); */
    cout << &num << endl;
    

    cout << endl;
    cout << func2() << endl;
    cout << &func2() << endl;
    func2() = 1000;
    cout << num << endl;
}

int main(void){
    test0();
    return 0;
}
